package com.liaowei.user.aspect;

//@Component
//@Aspect
//@Slf4j
public class WeiYLogAspect {

//    // 切入点
//    @Pointcut("execution(* com.liaowei.user.controller.*.*(..))")
//    public void weiYLog(){}
//
//    // 进入切入点之前
//    @Before("weiYLog()")
//    public void beforeWeiYLog(JoinPoint joinPoint) throws JsonProcessingException {
//        ServletRequestAttributes requestAttributes =
//                (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
//        HttpServletRequest request = requestAttributes.getRequest();
//
//        String methodName = joinPoint.getSignature().getName();
//        log.info("======================================= Method {}()begin =====================================",methodName );
//        // 执行时间
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        Date date = new Date();
//        String time = sdf.format(date);
//        log.debug("time          {}",time);
//        // 打印请求 URL
//        log.debug("URL          {}",request.getRequestURL());
//        // 打印请求方法
//        log.debug("HTTP Method          {}",request.getMethod());
//        // 打印controller的全路径，以及执行方法
//        log.debug("Class Method          {}.{}",joinPoint.getSignature().getDeclaringTypeName(),methodName);
//        // 打印请求ip
//        log.debug("IP          {}",request.getRemoteHost());
//        // 打印请求入参
//        ObjectMapper objectMapper = new ObjectMapper();
//        String argsJson = objectMapper.writeValueAsString(joinPoint.getArgs());
//        log.debug("Request Args          {}", argsJson);
//        log.info("============================================================================",methodName );
//    }
//
//    // 在切点对应方法执行之后
//    @After("weiYLog()")
//    public void afterWeiYLog(JoinPoint joinPoint){
//        String methodName = joinPoint.getSignature().getName();
//        log.info("======================================= Method {}()end =====================================",methodName );
//    }

}